package com.sky.mapper;

import com.sky.annotation.AutoFill;
import com.sky.dto.CategoryPageQueryDTO;
import com.sky.entity.Category;
import com.sky.enumeration.OperationType;

import java.util.List;

public interface CategoryMapper {
    int deleteByPrimaryKey(Long id);

    @AutoFill(OperationType.INSERT)
    int insert(Category record);

    @AutoFill(OperationType.INSERT)
    int insertSelective(Category record);

    Category selectByPrimaryKey(Long id);

    @AutoFill(OperationType.UPDATE)
    int updateByPrimaryKeySelective(Category record);

    @AutoFill(OperationType.UPDATE)
    int updateByPrimaryKey(Category record);

    /**
     * 根据分类分页查询条件查询员工列表
     * @param categoryPageQueryDTO 包含分类查询的分页条件的数据传输对象
     * @return 符合查询条件的分类列表，如果没有匹配的结果，则返回空列表（不会返回null）
     */
    List<Category> selectByPageQuery(CategoryPageQueryDTO categoryPageQueryDTO);

    /**
     * 根据类型查询分类
     * @param type 要查询的类型 1菜品分类 2 套餐分类
     * @return 符合查询类型的分类信息实体列表
     */
    List<Category> selectCategoryListByType(Integer type);
}